// 定义和用户相关的store

import { defineStore } from "pinia";
import { ref } from "vue";
import { userLoginApi } from "@/apis/user";
import { useCartStore } from "./cartStore";
import { mergeCartListAPI } from "@/apis/cart";

export const useUserStore = defineStore('user',()=>{
  const cartStore = useCartStore()

  // 定义管理用户数据的state
  const userInfo = ref({})
  // 定义获取接口数据的action函数
  const getUserInfo = async(data)=>{
    const user = await userLoginApi(data)
    userInfo.value = user.result
    // 合并购物车功能
    await mergeCartListAPI(cartStore.cartList.map(item=>{
      return {
        skuId:item.skuId,
        selected:item.selected,
        count:item.count
      }
    }))
    cartStore.updateCartList()
  }
  // 退出登录
  const logOut = ()=>{
    userInfo.value= {}
    cartStore.clearCart()
  }
  // 以对象形式返回
  return {
    userInfo,
    getUserInfo,
    logOut
  }
},{
  persist: true, // 启用持久化存储
})